package leetcode.leetcode_24;


public class ListNode {
    int val;
    ListNode next;

    ListNode() {
    }

    ListNode(int val) {
        this.val = val;
    }

    ListNode(int val, ListNode next) {
        this.val = val;
        this.next = next;
    }
}

class Solution {
    public ListNode swapPairs(ListNode head) {
        ListNode dumyhead = new ListNode(0);
        dumyhead.next = head;
        ListNode curr = dumyhead;
        while (curr.next != null && curr.next.next != null) {
            ListNode temp = curr.next.next;
            ListNode first = curr.next;
            ListNode second = curr.next.next;
            curr.next = second;
            first.next = temp.next;
            second.next = first;
            curr = first;
        }
        return dumyhead.next;
    }

    public static void main(String[] args) {
        ListNode listNode = new ListNode(1);
        listNode.next = new ListNode(2);
        listNode.next.next = new ListNode(3);
        listNode.next.next.next = new ListNode(4);
        ListNode listNode1 = new Solution().swapPairs(listNode);
    }
}